package com.divemotor.ventarepuestosinternet.dao.impl;

import java.io.Serializable;
import java.util.List;

import org.springframework.stereotype.Repository;


import com.divemotor.ventarepuestosinternet.dao.OpcionDAO;
import com.divemotor.ventarepuestosinternet.model.Opcion;
import com.divemotor.ventarepuestosinternet.model.Perfil;
@Repository("opcionDAO")
public class OpcionDAOImpl extends GenericoSinEstadoDAOImpl<Opcion, Integer> implements
		OpcionDAO, Serializable{

	private static final long serialVersionUID = -1599485301434994739L;

	@Override
	public List<Opcion> listarOpcionesSinPadresSegunPerfil(Perfil perfil) {

		return sessionFactory.getCurrentSession().createQuery("FROM Opcion p WHERE p.opcionPadre is null AND :perfil MEMBER OF p.listaPerfiles")
												 .setParameter("perfil", perfil)
												 .list();
	}

	@Override
	public List<Opcion> listarOpcionesHijosDeOpcionPadreSegunPerfil(Opcion opcionPadre,Perfil perfil) {
		return sessionFactory.getCurrentSession().createQuery("FROM Opcion p WHERE p.opcionPadre.idOpcion =:idOpcionPadre  AND :perfil MEMBER OF p.listaPerfiles")
												.setParameter("idOpcionPadre", opcionPadre.getIdOpcion())
												.setParameter("perfil", perfil)
												.list();
	}
}
